home *** CD-ROM | disk | FTP | other *** search
/ FishMarket 1.0 / FishMarket v1.0.iso / fishies / 426-450 / disk_441 / dme / src / test < prev    next >
Text File  |  1992-05-06  |  2KB  |  49 lines

  1.  
  2. Well, I've now got my entire compiler registerized, with some interesting
  3. results:
  4.  
  5.                 OLD    NEW    CHANGE
  6.  
  7.     DICE/compile-DME (time)     2:38    2:33    3.2% faster
  8.     DICE/sum_executable_sizes    235K    224K    11K (5%)  smaller
  9.     DME/executable_sizes    67K    56K    11K (15%) smaller
  10.  
  11.     c.lib(unreg) cr.lib(reg)    52172   51244   928 bytes smaller
  12.  
  13. I was somewhat surprised by these numbers, only DME's make complete sense.
  14. I expected *MUCH* smaller DICE executables but it didn't materialize.  I
  15. was hoping for a better improvement in speed but since none of the
  16. core algorithms I use are call-intensive the 3.2% does make sense.
  17.  
  18. DME, on the other hand, is extremely call intensive, thus the much greater
  19. benefit from registerized parameters.
  20.  
  21. BTW, on the c.lib/cr.lib sizes, I noticed that Lattice's LC.LIB vs
  22. LCR.LIB had a 1348 byte difference in size (i.e. about the same as I
  23. got with DICE).
  24.  
  25. I would conclude the following things from this:
  26.  
  27.     (1) registerized parameters do not make procedure definitions any
  28.     smaller
  29.  
  30.     (2) registerized parameters DO make procedure-CALLS smaller, but only
  31.     by virtue of getting rid of the stack pop.  Code -> reg vs
  32.     Code -> stk takes about the same amount of space.
  33.  
  34.     (3) registerized parameters make procedure call overhead MUCH faster,
  35.     but you only notice the benefit if you program is call-intensive
  36.     at the core level.
  37.  
  38. All in all, I like them.  I think that instead of implementing in-line
  39. library calls I will simply write a program to generate a registerized
  40. call interface.  Overhead will be nearly the same as for inline, the
  41. tags will be much smaller, and I do not have to deal with all that crazy
  42. pragma stuff.  I want the programmer to be able to simply #include the
  43. new 2.0 prototype files to get the regcall interface.
  44.  
  45.                     -Matt
  46.  
  47.  
  48.  
  49.